package com.southwind.service.impl;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.southwind.entity.LoginRecord;
import com.southwind.mapper.LoginRecordMapper;
import com.southwind.service.LoginRecordService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.southwind.util.PageObject;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

/**
 * <p>
 *  服务实现类
 * </p>
 *
 * @author yujun
 * @since 2025-10-12
 */
@Service
public class LoginRecordServiceImpl extends ServiceImpl<LoginRecordMapper, LoginRecord> implements LoginRecordService {

    @Autowired
    private LoginRecordMapper loginRecordMapper;

    @Override
    public PageObject loginRecordList(PageObject pageObject) {
        // 创建MyBatis-Plus分页对象，设置当前页码和每页大小
        // pageObject.getCurrent(): 获取请求的当前页码
        // pageObject.getSize(): 获取请求的每页记录数
        Page<LoginRecord> page = new Page<>(pageObject.getCurrent(), pageObject.getSize());
        // 执行分页查询，查询登录记录数据
        // this.loginRecordMapper.selectPage(): MyBatis-Plus提供的分页查询方法
        // page: 分页参数对象
        // null: 查询条件，此处为null表示查询所有记录
        Page<LoginRecord> resultPage = this.loginRecordMapper.selectPage(page, null);
        // 创建返回结果对象，用于封装分页数据
        PageObject result = new PageObject();
        // 设置返回数据：将查询到的记录列表设置到结果对象中
        // resultPage.getRecords(): 获取当前页的数据记录列表
        result.setData(resultPage.getRecords());
        // 设置每页大小：将实际查询的每页记录数设置到结果对象中
        result.setSize(resultPage.getSize());
        // 设置当前页码：将实际查询的当前页码设置到结果对象中
        result.setCurrent(resultPage.getCurrent());
        // 设置总记录数：将查询结果的总记录数设置到结果对象中
        result.setTotal(resultPage.getTotal());
        return result;
    }
}
